Many search engine services, such as Google and Overture, provide for searching for information that is accessible via the Internet. These search engine services allow users to search for web pages and other Internet-accessible resources that may be of interest to users. After a user submits a search request that includes search terms, the search engine service identifies web pages that may be related to those search terms. To quickly identify related web pages, the search engine services may maintain a mapping of keywords to web pages. This mapping may be generated by “crawling” the web (i.e., the World Wide Web) to identify the keywords of each web page. To crawl the web, a search engine service may use a list of root web pages to identify all web pages that are accessible through those root web pages. The keywords of any particular web page can be identified using various well-known information retrieval techniques, such as identifying the words of a headline, the words supplied in the metadata of the web page, the words that are highlighted, and so on.
Some search engine services attempt to tailor the search result based on the location of the user; such search engine services are referred to as location-based search engine services. Location-based search engine services can provide services to users based on the location of stationary and mobile devices. When a device is stationary, the location-based search engine services may use the Internet protocol (“IP”) address or domain name to identify the physical location of the stationary device, may prompt the user to indicate a location, and so on. When a device is mobile, location-based search engine services may use cellular tower triangulation of the mobile device, GPS coordinates provided by the mobile device, and so on to identify the location of the mobile device. Some location-based search engine services focus on providing their services to mobile devices. These location-based search engine services may provide maps to help a user locate a nearby destination. For example, when a user enters the search term “restaurant,” the search engine service may provide to the mobile device a map of the area surrounding the user along with an indication of the location of various restaurants.
Some search engine services do not charge a fee to the providers of web pages for including links to their web pages in search results. Rather, the search engine services obtain revenue by placing advertisements along with search results. These paid-for advertisements are commonly referred to as “sponsored links,” “sponsored matches,” or “paid-for search results.” A vendor who wants to place an advertisement along with certain search results provides a search engine service with an advertisement, a monetary bid, and search terms. When a search request is received, the search engine service identifies the advertisements whose search terms most closely match those of the search request. The search engine service then displays those advertisements along with the search results. The search engine service typically selects to display those advertisements belonging to the advertisers that have offered to pay the highest price (e.g., placed the highest bid) for their advertisement. The search engine services can either charge for placement of each advertisement along with search results (i.e., pay-per-impression billing model), charge only when a user actually selects a link associated with an advertisement (i.e., pay-per-click billing model), or charge only when a user calls a phone number presented in the advertisement (pay-for-call billing model).
Advertisements can be provided to users based on a “pull” model or “push” model. The advertising that accompanies conventional search results follows the pull model in the sense that the advertising is provided in response to a user submitting a query and thus “pulling” the advertisements. With the push model, advertisements are provided to a user independently of their interactions with their device. In particular, some advertising systems detect the location of a mobile device and send or “push” advertisements to those mobile devices that are appropriate for the location. For example, an advertising system may send to the mobile device of a user a short message service (“SMS”) message that indicates a coffee shop one block away will sell them a coffee drink for half price in the next 10 minutes. The push and pull models typically use either a pay-per-impression or pay-per-click billing model as appropriate. For example, an advertising system that sends location-based advertisements via SMS messages may use the pay-per-impression billing model, whereas an advertising system that provides sponsored links along with a search result may use the pay-per-click billing model.